/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.dew.discoteca.utiles;

import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 *
 * @author u201000382
 */
public class Utiles {

     public static String FORMATO_FECHA_LARGE="dd/MM/yyyy hh:mm:ss";
    public static String FORMATO_FECHA_CORTA="dd/MM/yyyy";
    public static String FORMATO_FECHA_CORTA_MYSQL="yyyy-MM-dd";

      public static String nullToBlank(Object texto){
            if(texto==null){
                    return "";
            }
            return texto.toString().trim();
    }
        public static String hash(String palabra) throws Exception {
                 MessageDigest md = MessageDigest.getInstance("MD5");
                 byte[] b = md.digest(palabra.getBytes());
                 int size = b.length;
                 StringBuffer h = new StringBuffer(size);
                 for (int i = 0; i < size; i++) {
                 int u = b[i]&255;
                         if (u<16){
                                 h.append("0"+Integer.toHexString(u));
                         }else {
                                 h.append(Integer.toHexString(u));
                         }
                 }
                 return h.toString();
         }

        public static Calendar stringToCalendar(String fecha,String formato) throws Exception{
            if(nullToBlank(fecha).equals("")){
    		throw new Exception("Ha enviado una fecha vacia.");
            }
    	fecha=nullToBlank(fecha);
        Calendar gc = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat(formato);
        gc.setTime(df.parse(fecha));
        return gc;
    }

    public static String CalendarToString(Calendar fecha,String formato) throws Exception{
        SimpleDateFormat df = new SimpleDateFormat(formato);
        return df.format(fecha.getTime());
    }

    public static String DateToString(Date fecha,String formato) throws Exception{
        SimpleDateFormat df = new SimpleDateFormat(formato);
        return df.format(fecha.getTime());
    }

    public static String ValidaDate(String fecha,String formato) throws Exception{
    	if(nullToBlank(fecha).equals("")){
    		throw new Exception("Ha enviado una fecha vacia.");
    	}
        fecha=nullToBlank(fecha);
        GregorianCalendar gc = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat(formato);
        gc.setTime(df.parse(fecha));
        return df.format(gc.getTime());
    }

    public static Date stringToDate(String fecha,String formato) throws Exception{
            if(nullToBlank(fecha).equals("")){
    		throw new Exception("Ha enviado una fecha vacia.");
            }
        fecha=nullToBlank(fecha);
        GregorianCalendar gc = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat(formato);
        gc.setTime(df.parse(fecha));
        return gc.getTime();
    }


}
